package main.java.sq;

import java.util.ArrayList;
import java.util.List;


public class Casilla {
	
	private Combate combate;
	
	public Combate getCombate(){
		return combate;
	}
	
	public void setCombate(Combate c){
		combate=c;
	}
	
	private Boolean planetaOculto=true;

	/**
	 * @uml.property  name="nave"
	 * @uml.associationEnd  multiplicity="(0 -1)" aggregation="composite" inverse="casilla:sq.Nave"
	 */
	private List<Nave> nave=new ArrayList<Nave>();

	/**
	 * Getter of the property <tt>nave</tt>
	 * @return  Returns the nave.
	 * @uml.property  name="nave"
	 */
	public List<Nave> getNave() {
		return nave;
	}

	/**
	 * Setter of the property <tt>nave</tt>
	 * @param nave  The nave to set.
	 * @uml.property  name="nave"
	 */
	public void setNave(List<Nave> nave) {
		this.nave = nave;
	}

	/**
	 * @uml.property  name="planeta"
	 * @uml.associationEnd  multiplicity="(1 1)" aggregation="composite" inverse="casilla:sq.Planeta"
	 */
	private Planeta planeta = new main.java.sq.Planeta();

	/**
	 * Getter of the property <tt>planeta</tt>
	 * @return  Returns the planeta.
	 * @uml.property  name="planeta"
	 */
	public Planeta getPlaneta() {
		return planeta;
	}

	/**
	 * Setter of the property <tt>planeta</tt>
	 * @param planeta  The planeta to set.
	 * @uml.property  name="planeta"
	 */
	public void setPlaneta(Planeta planeta) {
		this.planeta = planeta;
	}

	/**
	 * @uml.property  name="id"
	 */
	private int id=0;

	/**
	 * Getter of the property <tt>id</tt>
	 * @return  Returns the id.
	 * @uml.property  name="id"
	 */
	public int getId() {
		return id;
	}

	/**
	 * Setter of the property <tt>id</tt>
	 * @param id  The id to set.
	 * @uml.property  name="id"
	 */
	public void setId(int id) {
		this.id = id;
	}
	
	private boolean pirata;
	
	public boolean tienePirata(){
		return pirata;
	}
	
	public void setPirata(boolean pirata){
		this.pirata=pirata;
	}

		
		/**
		 */
		public void addNave(Nave nave){
			this.nave.add(nave);
		}
		
		private List<Casilla> casillasAdyacentes;
		public List<Casilla> getCasillasAdyacentes(){
			if(casillasAdyacentes==null){
				casillasAdyacentes=new ArrayList<Casilla>();
			}
			return casillasAdyacentes;
		}
		
		public void setCasillasAdyacentes(List<Casilla> c){
			if(casillasAdyacentes==null){
				casillasAdyacentes=new ArrayList<Casilla>();
			}
			casillasAdyacentes.addAll(c);

			}
		
		private int idJugador;
		
		public int getIdJugador(){
			return idJugador;
		}
		
		public void setIdJugador(int id){
			idJugador=id;
		}
		
		
		
		public String toString(){
			String mensaje;
			if(getJugador()!=null)
				mensaje = "Casilla " + getId() + " Planeta: "+getPlaneta()+" controlada por "+getJugador().getNombre();
			else
				mensaje = "Casilla "+ getId() + " no controlada.";
			return mensaje;
		}

		public void setPlanetaOculto(Boolean planetaOculto) {
			this.planetaOculto = planetaOculto;
		}

		public Boolean getPlanetaOculto() {
			return planetaOculto;
		}
		
		private Jugador jugador=null;
		
		public void setJugador(Jugador jugador) {
			this.jugador = jugador;
		}

		public Jugador getJugador() {
			return jugador;
		}
}


